package com.youi.dao;

import com.youi.entity.Userorder;
import com.youi.entity.vo.ExportMerchantOrderVO;
import com.youi.entity.vo.ExportOrderVO;
import com.youi.entity.vo.ExportPlatformOrderVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
public interface UserorderDao extends BaseDao<Userorder>{


	/**
	 * 查询订单列表
	 * @param params
	 * @param searchParams
	 * @param otherParams
	 * @param merchantParams
	 * @param sortParams
	 * @param pageIndex
	 * @param pageNum
	 * @param gtParams
	 * @param ltParams
	 * @return
	 */
	public List<Userorder> getUserorderList(@Param("params")Map<String, Object> params, @Param("searchParams")Map<String, Object> searchParams, @Param("otherParams")Map<String, Object> otherParams, 
			@Param("merchantParams")Map<String, Object> merchantParams,@Param("sortParams")Map<String, Object> sortParams,@Param("pageIndex")Integer pageIndex, 
			@Param("pageNum")Integer pageNum,@Param("gtParams")Map<String, Object>  gtParams,@Param("ltParams")Map<String, Object> ltParams);

	/**
	 * 查询订单集合
	 * @param params
	 * @param searchParams
	 * @param otherParams
	 * @param merchantParams
	 * @param sortParams
	 * @param gtParams
	 * @param ltParams
	 * @return
	 */
	public List<Userorder> getAllUserorderList(@Param("params")Map<String, Object> params, @Param("searchParams")Map<String, Object> searchParams, @Param("otherParams")Map<String, Object> otherParams, 
			@Param("merchantParams")Map<String, Object> merchantParams,@Param("sortParams")Map<String, Object> sortParams,@Param("gtParams")Map<String, Object> gtParams,@Param("ltParams")Map<String, Object> ltParams);

	/**
	 * 查询订单总数
	 * @param params
	 * @param searchParams
	 * @param otherParams
	 * @param merchantParams
	 * @param gtParams
	 * @param ltParams
	 * @return
	 */
	public Integer getUserorderCount(@Param("params")Map<String, Object> params, @Param("searchParams")Map<String, Object> searchParams, @Param("otherParams")Map<String, Object> otherParams, 
			@Param("merchantParams")Map<String, Object> merchantParams,@Param("gtParams")Map<String, Object>  gtParams,@Param("ltParams")Map<String, Object> ltParams);

	public List<Userorder> getUserorderByNoIds(@Param("params")Map<String, Object> params, @Param("noParams")Map<String, Object> noParams,@Param("searchParams")Map<String, Object> searchParams,@Param("sortParams")Map<String, Object> sortParams,
			@Param("gtParams")Map<String, Object>  gtParams,@Param("ltParams")Map<String, Object> ltParams);
	
	public Userorder getForUpdate(Long id);


	/**
	 * 导出订单数据
	 *
	 * @param param
	 * @return
	 */
	List<ExportOrderVO> listExportOrderByParam(Map<String, Object> param);

	public List<ExportPlatformOrderVO> getExportPlatformOrder(Map<String, Object> params);

	/**
	 * 获取商户提现订单数据
	 *
	 * @param params
	 * @return
	 */
	List<ExportMerchantOrderVO> listExportMerchantOrder(Map<String, Object> params);

}